/*
 * cm_memory.h
 *
 *  Created on: 2015年9月1日
 *      Author: chens
 */

#ifndef MEMORY_CM_MEMORY_H_
#define MEMORY_CM_MEMORY_H_

#define CM_MEM_BLOCK_SIZE   4096

/*
 * @brief   初始化内存模块
 * @param   base， size 用于内存管理的起始地址以及总的内存大小
 *          由于目前buddy只支持管理2的幂次个内存块， 因此 size / CM_MEM_BLOCK_SIZE
 *          将只取 2的幂次部分
 */
void cm_memory_setup(void *base, unsigned size);

/*
 * @brief   分配size个内存
 * @return  成功返回非NULL 失败返回NULL
 */
void * cm_malloc(unsigned size);

/*
 * @brief   释放由 cm_malloc 分配的内存
 */
void cm_free(void *ptr);

//void * cm_realloc(void *ptr, unsigned size);

#endif /* MEMORY_CM_MEMORY_H_ */
